#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
It generates the list of pre-candidate fusion genes. This list is hard coded
in here and it is manually curated from Illumina BodyMap2 RNA-seq database of samples
16 healthy human organs <http://www.ebi.ac.uk/arrayexpress/experiments/E-MTAB-513/>.



Author: Daniel Nicorici, Daniel.Nicorici@gmail.com

Copyright (c) 2009-2014 Daniel Nicorici

This file is part of FusionCatcher.

FusionCatcher is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

FusionCatcher is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with FusionCatcher (see file 'COPYING.txt').  If not, see
<http://www.gnu.org/licenses/>.

By default, FusionCatcher is running BLAT aligner
<http://users.soe.ucsc.edu/~kent/src/> but it offers also the option to disable
all its scripts which make use of BLAT aligner if you choose explicitly to do so.
BLAT's license does not allow to be used for commercial activities. If BLAT
license does not allow to be used in your case then you may still use
FusionCatcher by forcing not use the BLAT aligner by specifying the option
'--skip-blat'. Fore more information regarding BLAT please see its license.

Please, note that FusionCatcher does not require BLAT in order to find
candidate fusion genes!

This file is not running/executing/using BLAT.

"""
import sys
import os
import optparse
import symbols

if __name__ == '__main__':

    #command line parsing

    usage = "%prog [options]"
    description = """It generates the list of pre-candidate fusion genes from Illumina BodyMap2 RNA-seq database."""
    version = "%prog 0.12 beta"

    parser = optparse.OptionParser(usage=usage,description=description,version=version)

    parser.add_option("--organism",
                      action = "store",
                      type = "string",
                      dest = "organism",
                      default = "homo_sapiens",
                      help="""The name of the organism for which the list of allowed candidate fusion genes is generated, e.g. homo_sapiens, mus_musculus, etc. Default is '%default'.""")

    parser.add_option("--output",
                      action="store",
                      type="string",
                      dest="output_directory",
                      default = '.',
                      help="""The output directory where the list of allowed candidate fusion genes is generated. Default is '%default'.""")

    parser.add_option("--skip-filter-overlap",
                      action="store_true",
                      dest="skip_filter_overlap",
                      default = False,
                      help="""If set then it filters out the known fusion genes where the (i) genes are fully overlapping, or (ii) the genes are partially overlapping and are on the same strand. Default is '%default'.""")

    (options,args) = parser.parse_args()

    # validate options
    if not (options.output_directory
            ):
        parser.print_help()
        sys.exit(1)


    #
    #
    #

    print "Generating the list of allowed/known fusion genes..."
    fusions = dict()

    # manual curation from papers

    fusions['rattus_norvegicus'] = []

    fusions['mus_musculus'] = []

    fusions['canis_familiaris'] = []

    fusions['homo_sapiens'] = [
        ['CSNK1A1','TG'],
        ['SPTB','TG'],
        ['CRYAB','NEAT1'],
        ['IGFBP5','TXNIP'],
        ['MGP','TG'],
        ['MSH5','MSH5-SAPCD1'],
        ['IGFBP4','PLBD2'],
        ['DUT','ZNF534'],
        ['ATP1B1','MALAT1'],
        ['INTS12','RP11-45L9.1'],
        ['SPTBN1','TG'],
        ['CDC42EP4','CTSB'],
        ['IGHA1','IGHV3-48'],
        ['AEBP1','MYH11'],
        ['IGLC1','IGLV7-43'],
        ['TRBV28','TRBV4-1'],
        ['RP11-813N20.3','UGT2B4'],
        ['IGLC1','IGLV2-23'],
        ['RBFOX1','RP11-420N3.2'],
        ['CDK11B','RP1-283E3.8'],
        ['ALB','C3'],
        ['LINC00969','MIR570'],
        ['CCL21','IGKC'],
        ['RP11-159H22.1','RPL37A'],
        ['FGF14','FGF14-IT1'],
        ['AKR1C1','AKR1C2'],
        ['RHOB','TG'],
        ['IGLL5','IGLV1-47'],
        ['IFITM1','IFITM3'],
        ['GTPBP1','RP3-508I15.19'],
        ['AQP1','TG'],
        ['EEF2','GNAS'],
        ['CRYAB','GNAS'],
        ['RPS21P1','TBCE'],
        ['TRBC2','TRBV25-1'],
        ['ITIH4','TMEM110-MUSTN1'],
        ['FLNA','TG'],
        ['CRP','FGB'],
        ['FTH1','MKNK2'],
        ['CMC2','RP11-303E16.3'],
        ['UPP2','UPP2-IT1'],
        ['MAP4','TG'],
        ['TRAC','TRAV38-1'],
        ['AC002398.12','NEAT1'],
        ['SIRPA','SIRPB1'],
        ['RPL13A','RPL13AP7'],
        ['HSPA1B','TG'],
        ['TMBIM6','TPO'],
        ['CD68','CNN2'],
        ['TRBV25-1','TRBV4-2'],
        ['IGHM','IGHV3-30'],
        ['SIDT2','TAGLN'],
        ['DSE','RP1-93H18.1'],
        ['ATP1A1','GPX3'],
        ['LMO7','RP11-29G8.3'],
        ['CLU','MALAT1'],
        ['IGLC2','IGLV6-57'],
        ['CTD-2396E7.9','MALAT1'],
        ['NEK6','RP11-121A14.3'],
        ['FGA','SAA2'],
        ['JUN','TG'],
        ['TRAC','TRAV26-1'],
        ['DES','TCAP'],
        ['IGLC2','IGLV2-23'],
        ['LINC00630','LL0XNC01-237H1.2'],
        ['FPGT-TNNI3K','RP4-650F12.2'],
        ['CLSTN1','CTNNBIP1'],
        ['GOLGA8A','GOLGA8B'],
        ['CCL5','LYZ'],
        ['INPP5J','TPO'],
        ['LINC00968','PENK'],
        ['EDEM2','MMP24-AS1'],
        ['PUS1','RP11-417L19.6'],
        ['TRBC2','TRBV7-9'],
        ['ADPRHL1','DCUN1D2'],
        ['TRAC','TRAV21'],
        ['SYNPO','TG'],
        ['NKX6-2','RP11-288G11.3'],
        ['MALAT1','MAP3K12'],
        ['AEBP1','TG'],
        ['EEF2','TXNIP'],
        ['IGHG1','IGHV3-30'],
        ['PTMS','SMARCA2'],
        ['MYH11','MYH9'],
        ['ZNF580','ZNF581'],
        ['IGHM','IGHV1-3'],
        ['TG','TSC22D3'],
        ['CSDE1','TG'],
        ['ATP1A1','CRYAB'],
        ['ID4','TG'],
        ['CANX','NEAT1'],
        ['IGFBP5','RPL37A'],
        ['IGHA2','IGHV3-15'],
        ['RBP5','RP11-273B20.1'],
        ['ANG','RNASE4'],
        ['PPAP2B','TG'],
        ['IGKV1-8','IGKV3D-11'],
        ['ATF6B','TNXB'],
        ['RP11-321N4.5','SYNCRIP'],
        ['IGHM','IGHV3-20'],
        ['LINC00312','LMCD1'],
        ['COL4A2','TG'],
        ['CYP4A11','CYP4A22'],
        ['COG8','VPS4A'],
        ['IGHG1','IGHV1-46'],
        ['CNN1','MYH11'],
        ['AC007249.3','RP11-320M2.1'],
        ['ACTA1','CLU'],
        ['NDST2','RP11-574K11.31'],
        ['CTBP2P8','WLS'],
        ['ADCK4','NUMBL'],
        ['PTMS','TG'],
        ['RP11-122K13.12','TUBGCP2'],
        ['KMT2D','PRKAG1'],
        ['NUPR1','TG'],
        ['MAOA','TG'],
        ['AC010525.6','AC010525.7'],
        ['IGKV1-8','IGKV5-2'],
        ['RPL5','RPL5P8'],
        ['PCF11','RP11-727A23.4'],
        ['IGHG1','IGKC'],
        ['MYH11','PLEKHO1'],
        ['FLNA','IGKC'],
        ['IGHG1','IGHV4-34'],
        ['APBB3','SRA1'],
        ['IGKV2D-29','IGKV3-11'],
        ['KIAA1257','RP11-723O4.6'],
        ['IGFBP4','NR2F2'],
        ['IGLL5','IGLV3-21'],
        ['DRICH1','KB-1572G7.3'],
        ['CA5B','CA5BP1'],
        ['HSPB8','RP11-64B16.2'],
        ['TRBV28','TRBV3-1'],
        ['IGHG1','IGHV1-3'],
        ['IGHG1','IGHV3-13'],
        ['NR2F2','RP11-522B15.3'],
        ['NKX2-1','SFTA3'],
        ['KLHL41','TG'],
        ['TG','VIM-AS1'],
        ['FLNA','NFIC'],
        ['EHBP1L1','TG'],
        ['IGFBP5','NFIC'],
        ['CRTC2','SLC39A1'],
        ['AC244250.4','IGLV2-18'],
        ['CLU','GFAP'],
        ['GLUL','GRN'],
        ['POLR3GL','RP11-315I20.1'],
        ['FLNC','TG'],
        ['SEC14L1','SNHG20'],
        ['TRBV20-1','TRBV28'],
        ['TG','TNS1'],
        ['TNNT2','TTN'],
        ['GS1-259H13.10','GS1-259H13.2'],
        ['TRAC','TRAV9-2'],
        ['NXF1','TMEM223'],
        ['DUSP1','FLNC'],
        ['IGKV3-11','IGKV3D-11'],
        ['RBM14-RBM4','RBM4'],
        ['RNF149','SNORD89'],
        ['CEBPD','TG'],
        ['IGHG1','IGHV3-11'],
        ['AP000275.65','TCP10L'],
        ['C1R','IGFBP5'],
        ['BTG2','TPO'],
        ['CHRNA5','PSMA4'],
        ['CAV1','TG'],
        ['TRAC','TRAV41'],
        ['IGLC1','IGLV2-14'],
        ['DES','EIF4G1'],
        ['CKLF-CMTM1','CMTM1'],
        ['AC002398.12','TNNT2'],
        ['FLNA','IGFBP5'],
        ['IFT140','LA16C-425C2.1'],
        ['CYP2A6','CYP2A7'],
        ['IGHV1-2','IGHV7-81'],
        ['AP001469.9','MCM3AP'],
        ['IGHG1','IGHV1-58'],
        ['AMZ2','AMZ2P1'],
        ['DSTNP2','RPL13P5'],
        ['C5ORF45','FLNC'],
        ['CTDSP2','DES'],
        ['MYH7','MYL2'],
        ['FASN','TG'],
        ['FRAS1','TG'],
        ['TG','TNNT1'],
        ['CDK11A','CDK11B'],
        ['TRBV28','TRBV4-2'],
        ['AC012309.5','LINC00665'],
        ['HSPB6','TG'],
        ['SLC25A3','SNORA53'],
        ['METTL7A','TG'],
        ['ANP32B','ANP32BP1'],
        ['MYH9','TNNT2'],
        ['CRP','FGA'],
        ['EGLN1','SCAND2P'],
        ['IGFBP4','IGFBP5'],
        ['ASPRV1','PCBP1-AS1'],
        ['ATP1A1','PSAP'],
        ['IGF1R','TG'],
        ['JAK1','RP4-535B20.1'],
        ['IGHG1','IGHV3-53'],
        ['MAVS','TG'],
        ['C10ORF25','CEP164P1'],
        ['CTSB','TIMP3'],
        ['IGHG3','IGHV1-18'],
        ['TG','VCP'],
        ['LGALS2','TMPRSS2'],
        ['IGLL5','IGLV1-51'],
        ['ATP6V0C','IGFBP4'],
        ['IGSF5','PCP4'],
        ['IGKC','TNS1'],
        ['IGKC','IGKV1-17'],
        ['LYZ','TNFRSF1B'],
        ['IGHA1','IGHJ6'],
        ['TG','TMBIM6'],
        ['TRAC','TRAV25'],
        ['CSRP3','TG'],
        ['HOXB3','HOXB4'],
        ['MYH11','MYL9'],
        ['FOXJ3','RP11-223A3.1'],
        ['GPR135','L3HYPDH'],
        ['IGHV3-11','IGHV3-7'],
        ['LAPTM4B','RP11-21I10.2'],
        ['IGKC','IGKV1D-13'],
        ['MYH11','PRM1'],
        ['IGLC2','IGLC3'],
        ['RP3-327A19.7','UPF3B'],
        ['B2M','TG'],
        ['SERPINB3','SERPINB4'],
        ['IGKV3-7','IGKV3D-11'],
        ['CARD16','CASP1'],
        ['NFATC3','PLA2G15'],
        ['TG','ZFP36L1'],
        ['CEBPA-AS1','CTD-2540B15.9'],
        ['TRBC2','TRBV28'],
        ['ALB','SERPINA3'],
        ['IDH2','RP11-617F23.1'],
        ['IGKC','IGKV1-9'],
        ['TRGC1','TRGV2'],
        ['IGHG1','IGHV3-21'],
        ['LIPG','TG'],
        ['CTC-273B12.8','CYTH2'],
        ['CTD-2501E16.2','RP11-219B17.1'],
        ['PLIN4','PSAP'],
        ['IGHA1','IGHV1-3'],
        ['ACTA1','FLNC'],
        ['HHIPL1','RP11-543C4.1'],
        ['RP11-727F15.11','TMEM223'],
        ['LMOD2','TNNT2'],
        ['MB','TG'],
        ['RPL13','RPL13P12'],
        ['RP1-102E24.10','TAPBPL'],
        ['IGKV1-27','IGKV1-6'],
        ['CPSF3L','RP5-890O3.9'],
        ['FGG','PEBP1'],
        ['FNBP4','Y_RNA'],
        ['MIR3654','TG'],
        ['PCBP1','TG'],
        ['IGKV3-11','IGKV4-1'],
        ['HSPA12A','RP11-539I5.1'],
        ['IGLC2','IGLV1-40'],
        ['C2ORF66','PGAP1'],
        ['CALM3','IGFBP5'],
        ['IGLL5','IGLV3-25'],
        ['CTSD','TG'],
        ['AC073046.25','TET3'],
        ['RP11-716O23.1','RP11-716O23.2'],
        ['CTA-38K21.4','CTA-38K21.5'],
        ['RP5-940J5.9','TG'],
        ['IGKV3-11','IGKV3-15'],
        ['ATPAF1','EFCAB14'],
        ['CLU','TPO'],
        ['TRBV20-1','TRBV25-1'],
        ['IGKC','IGKV3-15'],
        ['IGF2','IGFBP4'],
        ['GNAS','TPO'],
        ['ATP1A1','CKM'],
        ['CES1','CES1P1'],
        ['IGKV3-11','IGKV3-20'],
        ['RNASE4','RNASE4'],
        ['IGFBP5','RPL11'],
        ['RP5-1159O4.1','RP5-1159O4.2'],
        ['RP1-178F15.4','S100A13'],
        ['PPIH','RP5-994D16.3'],
        ['GLUL','SBF2'],
        ['DES','GNAS'],
        ['LILRB1','LILRB2'],
        ['TPSAB1','TPSB2'],
        ['PKNOX2','RP11-687M24.7'],
        ['CKLF','CMTM1'],
        ['CDC42EP4','TG'],
        ['JAK1','LINC01359'],
        ['IGHA1','IGHV1-69'],
        ['CLU','CTSB'],
        ['PCBP2','PCBP2-OT1'],
        ['FTX','RP3-368A4.5'],
        ['YWHAZ','YWHAZP6'],
        ['APLP2','TG'],
        ['APOA1','SERPINA1'],
        ['GPX3','SPP1'],
        ['FGF7','RP11-262H14.11'],
        ['TG','TLN1'],
        ['ENG','IGFBP5'],
        ['IGFBP4','LENG8'],
        ['ADSL','SGSM3'],
        ['ATP1A1','VIM'],
        ['CTC-441N14.4','ZNF474'],
        ['IGKV1-16','IGKV3-11'],
        ['CCDC150P1','CLIP1'],
        ['IGKC','IGKV1D-43'],
        ['TRAC','TRAV4'],
        ['ATXN7','PSMD6-AS2'],
        ['IGHG3','IGHG4'],
        ['CLU','TUBB4A'],
        ['CLIC1','DDAH2'],
        ['HERPUD1','RP11-325K4.3'],
        ['NPC2','RP3-449M8.6'],
        ['AF001548.5','NDE1'],
        ['PTMA','PTMAP5'],
        ['IGHA1','IGHV3-43'],
        ['LINC00240','TRNAI2'],
        ['SLC25A6','TG'],
        ['SNHG14','SNRPN'],
        ['CXCR1','CXCR2'],
        ['PEBP1','TG'],
        ['RPL11','TCEB3'],
        ['IGHV3-23','IGHV3-41'],
        ['APITD1-CORT','CORT'],
        ['HK1','TG'],
        ['RPL7L1','WAC-AS1'],
        ['HIAT1','SLC35A3'],
        ['RPL8','TG'],
        ['IGLL5','IGLV9-49'],
        ['PRH1','TAS2R15P'],
        ['MYH7','TNNI3'],
        ['COL1A1','RPL8'],
        ['ROPN1L','RP11-1C1.7'],
        ['CLU','FLNC'],
        ['CLK1','PPIL3'],
        ['IGLC2','IGLV1-51'],
        ['DYNLRB1','ITCH'],
        ['IGHD','IGHJ6'],
        ['AHNAK','TG'],
        ['TRAC','TRAV12-2'],
        ['IGLV2-14','IGLV2-23'],
        ['IGHA1','IGHV3-20'],
        ['CALR','NCL'],
        ['ACTG2','DES'],
        ['MYH11','PCSK7'],
        ['IYD','TTN'],
        ['IGHM','IGHV4-39'],
        ['KIAA1731','SCARNA9'],
        ['TG','TMED2'],
        ['IGFBP5','PTMS'],
        ['IGKV3-11','IGKV3D-20'],
        ['TG','VIM'],
        ['IGLL5','IGLV4-69'],
        ['CTD-3214H19.6','PCP2'],
        ['TG','TMEM66'],
        ['TMEM203','TPRN'],
        ['IGLC1','IGLV1-51'],
        ['ENKD1','GFOD2'],
        ['RP5-991G20.1','RP5-991G20.2'],
        ['RCC1','SNORA73B'],
        ['ACACB','RP11-968O1.5'],
        ['GPX3','TG'],
        ['DDOST','PINK1-AS'],
        ['IGLL5','IGLV1-50'],
        ['ZNF32-AS2','ZNF485'],
        ['TRAC','TRAV14DV4'],
        ['NEAT1','SOD2'],
        ['CD74','IGHM'],
        ['NUMA1','TG'],
        ['IGLL5','IGLV2-23'],
        ['COL1A1','IGFBP4'],
        ['CTD-2008L17.2','RP11-456O19.5'],
        ['GRID1','UC_338'],
        ['ATP1A1','EEF2'],
        ['NAP1L1','NAP1L1P3'],
        ['IGLL5','IGLV1-44'],
        ['SNORA5A','TBRG4'],
        ['ADAP2','RNF135'],
        ['DDX17','TG'],
        ['IGHA1','IGHV3-23'],
        ['IGHG3','IGHV3-23'],
        ['TRBC2','TRBV9'],
        ['CRYAB','EEF2'],
        ['GNAS','RERE'],
        ['ATP1A1','TG'],
        ['C19ORF18','ZNF606'],
        ['IGFBP5','XIRP1'],
        ['IGLC5','IGLL5'],
        ['HNRNPA2B1','MYH11'],
        ['AC006153.3','CTB-13L3.1'],
        ['TG','UBE2G2'],
        ['IGLC1','IGLV3-27'],
        ['IGHM','IGHV3-15'],
        ['FCRL1','FCRL2'],
        ['ATP1A1','GSN'],
        ['TRBV28','TRBV29-1'],
        ['SPINT2','TG'],
        ['RP11-355I22.6','SYT16'],
        ['TG','TXNIP'],
        ['ATP1A1','TPO'],
        ['CDC42EP2','POLA2'],
        ['TRBV25-1','TRBV7-9'],
        ['IGHV1-18','IGHV1-2'],
        ['SLC7A8','TG'],
        ['RP11-54C4.1','RPLP1'],
        ['RBM12','RP1-309K20.6'],
        ['IGHA1','IGKC'],
        ['FLNB','TG'],
        ['AP000320.7','SLC5A3'],
        ['CYP2B6','CYP2B7P'],
        ['IGFBP5','PRKAR1A'],
        ['IDS','TUBB4A'],
        ['ACTG1','TG'],
        ['IGHV3-53','IGHV3-66'],
        ['AC022153.1','LLNLF-65H9.1'],
        ['AKT2','TG'],
        ['HEATR1','RP11-385F5.5'],
        ['ADAMTSL4-AS1','MCL1'],
        ['NACA','NACA3P'],
        ['GBP4','GBP7'],
        ['CDH1','TG'],
        ['IGFBP4','NEAT1'],
        ['IGHM','IGHV3-74'],
        ['ORM1','ORM2'],
        ['RP11-99L13.1','RP11-99L13.2'],
        ['SNAP25','VSNL1'],
        ['TTTY15','USP9Y'],
        ['ADH1B','ADH1C'],
        ['IGHG1','IGHV6-1'],
        ['PLIN4','SPTBN1'],
        ['PPP1R8P1','SPATA6'],
        ['IGLL5','IGLV3-9'],
        ['PRKAR1A','TG'],
        ['IGKV1-17','IGKV1-8'],
        ['CCNI','TG'],
        ['DUSP1','TG'],
        ['CD74','IGKC'],
        ['RP11-307L14.1','RP11-307L14.2'],
        ['MIR6821','PIM3'],
        ['MYH7','TG'],
        ['HSPB6','IGFBP4'],
        ['MT1X','MT2A'],
        ['IGLL5','IGLV10-54'],
        ['NCDN','VSNL1'],
        ['TRAC','TRAV10'],
        ['SLC25A3','TG'],
        ['IGKV1D-43','IGKV3-11'],
        ['RP11-100F15.1','RP11-100F15.2'],
        ['LRG1','TAPBP'],
        ['TPT1','ZFP36L1'],
        ['ZNF32-AS2','ZNF32-AS3'],
        ['FOS','TG'],
        ['RP11-686D22.7','RP11-686D22.8'],
        ['LINC-PINT','MIR29B1'],
        ['NDUFA1','TG'],
        ['CALR','TG'],
        ['MSANTD3','TMEFF1'],
        ['FLNA','PLIN4'],
        ['GAA','SERPINA1'],
        ['TRBC2','TRBV2'],
        ['PSPC1','ZMYM5'],
        ['CTC-786C10.1','RP11-680G10.1'],
        ['BSG','MYH11'],
        ['NKX2-1','TG'],
        ['MACC1-AS1','RP11-486P11.1'],
        ['CMTM4','RP11-403P17.6'],
        ['IGKV2D-30','IGKV3-11'],
        ['IGHG1','IGHV3-72'],
        ['ACTB','TG'],
        ['FLNC','TMBIM6'],
        ['PEX11A','PLIN1'],
        ['GJA9-MYCBP','MYCBP'],
        ['TG','UBA52'],
        ['C4ORF36','SLC10A6'],
        ['ACTA1','CKM'],
        ['AC020956.3','LYPD4'],
        ['ATP5I','MFSD7'],
        ['EIF4G1','TG'],
        ['IGKV1D-8','IGKV3-11'],
        ['MSANTD3','MSANTD3-TMEFF1'],
        ['IGHG1','IGHV3-20'],
        ['C7ORF55-LUC7L2','LUC7L2'],
        ['AP000318.2','AP000320.7'],
        ['ALB','FGG'],
        ['RIMBP2','RP11-662M24.2'],
        ['PSAP','TG'],
        ['AC007557.1','AC007557.3'],
        ['IAH1','RP11-400L8.2'],
        ['CROCC','CROCCP2'],
        ['GSTP1','TG'],
        ['SLFN11','SLFN13'],
        ['TG','TPM2'],
        ['APBB2','Y_RNA'],
        ['LSAMP','RP11-384F7.2'],
        ['RP5-850E9.3','TG'],
        ['IGFBP4','LRP1'],
        ['ALB','FGL1'],
        ['NPM2','XPO7'],
        ['MIR143','MIR143HG'],
        ['IGKC','IGKV3D-15'],
        ['KIF1C','TG'],
        ['AC073063.10','SARNP'],
        ['LRG1','SAA2'],
        ['CLK4','RN7SKP70'],
        ['CREBL2','TPO'],
        ['IGHG3','IGHM'],
        ['NFIC','TG'],
        ['ALB','SAA1'],
        ['FTL','FTLP3'],
        ['CCL21','IGHM'],
        ['TG','UBC'],
        ['OR52N4','TRIM22'],
        ['PCSK2','TG'],
        ['TRAC','TRAV3'],
        ['IGKV1-8','IGKV4-1'],
        ['CLU','EEF2'],
        ['IGHA1','IGHV3-15'],
        ['TG','TTN'],
        ['FGA','HP'],
        ['JUP','TG'],
        ['ATN1','TG'],
        ['EEF2','IGFBP4'],
        ['NRAP','TG'],
        ['LMOD2','MYH7'],
        ['ALDH1A1','TG'],
        ['CLU','IGFBP5'],
        ['TRBV28','TRBV9'],
        ['EEF2','MYBPC1'],
        ['IGHA1','IGHV3-7'],
        ['MYH11','PRM2'],
        ['AC007036.5','MTURN'],
        ['ACADL','KANSL1L'],
        ['AC084082.3','TRIM55'],
        ['ANKRD18A','RP11-392E22.5'],
        ['IGHG1','IGHG4'],
        ['IGHA1','IGHV3-21'],
        ['C11ORF48','UBXN1'],
        ['CCPG1','PIGBOS1'],
        ['RAD23A','TG'],
        ['BACH1','BACH1-IT1'],
        ['IGHM','IGHV3-48'],
        ['IGHA1','IGHV3-73'],
        ['RP11-6O2.3','SYNM'],
        ['NSUN6','RP11-499P20.2'],
        ['MYH7','TNNT2'],
        ['LBH','TG'],
        ['MIA2','RP11-407N17.3'],
        ['IGHV4-28','IGHV4-31'],
        ['C8ORF76','ZHX1'],
        ['FGG','GC'],
        ['GPX3','NEAT1'],
        ['ZNF28','ZNF816'],
        ['ADH1A','ADH1B'],
        ['ENO3','TG'],
        ['IGHG1','IGHM'],
        ['RAP1GAP','TG'],
        ['CTD-3222D19.2','EPS15L1'],
        ['RP11-285G1.15','RSU1P2'],
        ['MSN','TG'],
        ['HSPB1','TG'],
        ['RP4-765C7.2','RPS14'],
        ['IGHA1','IGHM'],
        ['IGHA1','IGHV4-39'],
        ['IGKC','IGKV2-24'],
        ['HNRNPA1','HNRNPA1P48'],
        ['TRBV28','TRBV6-6'],
        ['LINC00963','RP11-492E3.51'],
        ['COL1A1','COL1A2'],
        ['CRYAB','MTSS1L'],
        ['RP11-57H12.2','TMEM56-RWDD3'],
        ['APP','DES'],
        ['MALAT1','MYL2'],
        ['MEG8','SNHG23'],
        ['OR2W3','TRIM58'],
        ['ACTG1','IGFBP5'],
        ['RP11-667K14.3','RP11-667K14.4'],
        ['CTC-246B18.8','GMFG'],
        ['YBX3','YBX3P1'],
        ['GAA','HP'],
        ['SOD2','TPO'],
        ['IGHG1','IGHV4-31'],
        ['KLHL23','SSB'],
        ['AIG1','RP1-95L4.4'],
        ['OTUB1','TG'],
        ['TPSB2','TPSD1'],
        ['NEB','TG'],
        ['SNHG14','SNURF'],
        ['AC018730.4','LINC01159'],
        ['SRXN1','TG'],
        ['CTB-54O9.9','PRR22'],
        ['FLNA','MYL9'],
        ['FGA','FGG'],
        ['TG','VEGFA'],
        ['ZNF197','ZNF660'],
        ['RYR1','TG'],
        ['PAPOLA','RP11-872J21.5'],
        ['IGKV3-11','IGKV3D-15'],
        ['IGHG1','RP11-731F5.2'],
        ['IGHG3','IGHV1-69'],
        ['RP11-258F22.1','ZNF248'],
        ['TG','YWHAZ'],
        ['IGHV3-23','IGHV3-30'],
        ['IGLC1','IGLV3-10'],
        ['TRBC2','TRBV14'],
        ['IGKC','IGKV1D-8'],
        ['SRRM2','TG'],
        ['DES','IGFBP5'],
        ['SYNM','TG'],
        ['NDUFAF6','RP11-347C18.3'],
        ['MACROD1','RP11-21A7A.3'],
        ['CLU','IYD'],
        ['LRP1','MTCH1'],
        ['MLLT6','TG'],
        ['GFAP','MBP'],
        ['AD000092.3','RPS6'],
        ['IGKC','IGKV6-21'],
        ['COPZ2','RP5-890E16.2'],
        ['IGLC1','IGLV3-21'],
        ['LINC00643','RP11-355I22.6'],
        ['CAPN3','RP11-164J13.1'],
        ['TRAC','TRAV8-6'],
        ['RPL24','RPL24P2'],
        ['PPP2R4','RP11-247A12.2'],
        ['CTD-2369P2.2','S1PR2'],
        ['C10ORF10','TIMP3'],
        ['IGHG1','IGHV3-23'],
        ['ADIPOQ','VKORC1L1'],
        ['NKAPP1','RHOXF1'],
        ['AC005152.3','SOX9-AS1'],
        ['IGHG2','IGHG3'],
        ['DHRS1','RABGGTA'],
        ['CAMTA1','CAMTA1-IT1'],
        ['IGHA1','IGHV2-5'],
        ['BEX4','TG'],
        ['IGHG1','IGHV3-62'],
        ['TRBV25-1','TRBV4-1'],
        ['IGHV1-2','IGHV1-24'],
        ['IGKC','IGKV3D-11'],
        ['ANKRD1','TG'],
        ['ACKR1','CADM3'],
        ['IYD','TG'],
        ['AP1G2','JPH4'],
        ['IGKC','IGKV2D-29'],
        ['AP005482.1','PSMG2'],
        ['CD99','CD99P1'],
        ['PLXNB2','TG'],
        ['AFMID','LRG1'],
        ['RP11-203J24.9','ST6GALNAC6'],
        ['TRBC2','TRBV29-1'],
        ['EGR1','TG'],
        ['LL0XNC01-16G2.1','PNMA3'],
        ['INE1','UBA1'],
        ['TSLP','WDR36'],
        ['AC108479.3','KRCC1'],
        ['FLNA','FLNC'],
        ['DISP2','LINC00594'],
        ['FABP3','RP11-266K22.2'],
        ['RP11-159N11.4','TTC12'],
        ['TRBC2','TRBV5-5'],
        ['CTD-2008L17.2','RP11-456O19.4'],
        ['ATP1A1','IGFBP5'],
        ['SESN3','TG'],
        ['CDK14','CTB-13L3.1'],
        ['HS1BP3','HS1BP3-IT1'],
        ['IGHA2','IGHG3'],
        ['RP11-466L17.1','RP11-90C4.1'],
        ['ATP7A','RP5-1000K24.2'],
        ['CTB-50L17.14','PLIN5'],
        ['LIME1','SLC2A4RG'],
        ['IGHG1','IGHV1-69'],
        ['RP11-638I2.6','YY1'],
        ['CRIP3','ZNF318'],
        ['MYL2','TTN'],
        ['CTD-2161F6.1','RP11-445O3.2'],
        ['PLSCR2','RP11-758I14.3'],
        ['IGKC','IGKV5-2'],
        ['IGLC2','IGLV3-1'],
        ['TRBV25-1','TRBV29-1'],
        ['IGHA1','IGHV4-28'],
        ['IGKV3-11','IGKV6-21'],
        ['CXORF65','IL2RG'],
        ['CTR9','SNORD97'],
        ['CTC-498J12.1','RP11-141O11.2'],
        ['ALB','GAA'],
        ['FLNC','TPO'],
        ['IGHG1','IGHV3-73'],
        ['IGKC','IGKV1-8'],
        ['IRS1','TG'],
        ['RP11-166D19.1','RP11-820L6.1'],
        ['ACTG1','FLNC'],
        ['CRP','ORM1'],
        ['ATP1A1','MALAT1'],
        ['IGKV1-8','IGKV3D-20'],
        ['PBXIP1','TG'],
        ['BMS1P20','IGLC1'],
        ['TRBV25-1','TRBV9'],
        ['GSN','TG'],
        ['RP11-599B13.6','TMEM107'],
        ['CALR','FGA'],
        ['MTHFD1','MTHFD1P1'],
        ['LDLRAP1','RP11-70P17.1'],
        ['CRYAB','DES'],
        ['ALB','SERPINA1'],
        ['IGHG1','IGHV1-18'],
        ['CFDP1','RP11-252K23.2'],
        ['FLVCR1-AS1','SPATA45'],
        ['C1ORF86','RP11-181G12.2'],
        ['RP11-385F5.4','RP11-385F5.5'],
        ['CTC-378H22.1','CTC-378H22.2'],
        ['UGT2B15','UGT2B17'],
        ['LDB3','OPN4'],
        ['IGLL5','IGLV7-43'],
        ['IGKC','IGKV1-16'],
        ['GNAS','JUN'],
        ['RP11-649A18.7','SUMO2'],
        ['RPS6','TG'],
        ['HSPB6','TNS1'],
        ['ANO1','RP11-626H12.1'],
        ['SNHG14','SNORD116-21'],
        ['C19ORF24','CIRBP'],
        ['C7','IGFBP5'],
        ['H6PD','LRG1'],
        ['HP','HPR'],
        ['CACNA1C','CACNA1C-IT2'],
        ['IGHA2','IGHV3-74'],
        ['BCAM','TG'],
        ['IGHM','IGHV1-2'],
        ['IGHG1','IGHV3-15'],
        ['ANO3','CTD-2507G9.1'],
        ['TCEAL3','TCEAL6'],
        ['IGHD','IGHG3'],
        ['COX7A2L','KCNG3'],
        ['IGKC','IGKV2D-30'],
        ['GNB2L1','IGFBP5'],
        ['IGKV3-11','IGKV5-2'],
        ['C3','IGFBP5'],
        ['SLC35E1','TG'],
        ['GLUL','GPX3'],
        ['MSRB1','RPL3L'],
        ['H3F3B','H3F3C'],
        ['EEF2','TPO'],
        ['CH17-472G23.4','PDE4DIP'],
        ['PAOX','RP11-108K14.8'],
        ['FEZ1','STT3A-AS1'],
        ['CDH1','TPO'],
        ['AMZ2','RP11-147L13.15'],
        ['AL590762.6','ZCRB1'],
        ['A2M','FGG'],
        ['TRBC2','TRBV4-1'],
        ['MSANTD3-TMEFF1','MURC'],
        ['EEF1DP3','FRY'],
        ['RP4-576H24.4','SIRPD'],
        ['PHB2','SCARNA12'],
        ['C6ORF201','RP3-400B16.4'],
        ['FLNC','IGFBP5'],
        ['IGHG3','IGHV1-46'],
        ['IGLC1','IGLV3-25'],
        ['FLNC','GNAS'],
        ['CKM','TG'],
        ['CECR7','IL17RA'],
        ['AC053503.6','MYH7'],
        ['CYP2A6','LRP1'],
        ['GREB1','RN7SL674P'],
        ['CABIN1','KB-318B8.7'],
        ['ALB','HPX'],
        ['PODN','TG'],
        ['ENTPD4','LOXL2'],
        ['GLIPR1','GLIPR1L2'],
        ['PCED1B','RP11-493L12.4'],
        ['KIAA0754','MACF1'],
        ['C3','FGA'],
        ['AC244250.2','IGLV2-14'],
        ['LYZ','SNORA67'],
        ['RPS12','SNORA33'],
        ['ATP1B1','RP5-1018K9.1'],
        ['EEF2','GSN'],
        ['IGHA1','IGHV3-72'],
        ['RP4-734P14.4','SNRPB'],
        ['AIF1L','TG'],
        ['CTSD','IGFBP5'],
        ['MUSTN1','RP5-966M1.6'],
        ['CTNNA1','CTNNAP1'],
        ['IGHM','IGHV3-7'],
        ['CDC37','TG'],
        ['IGLL5','IGLV8-61'],
        ['HNRNPA2B1','TG'],
        ['IGLL5','IGLV1-40'],
        ['IGLL5','IGLV3-27'],
        ['FKBP11','RP11-302B13.5'],
        ['ZNF607','ZNF781'],
        ['PRSS45','PRSS46'],
        ['FXYD2','FXYD6'],
        ['ATP2A2','TG'],
        ['ITIH4','SERPINA1'],
        ['IQCF1','IQCF5'],
        ['IGHA1','IGHV1-2'],
        ['FBLN2','TG'],
        ['IGKV2-24','IGKV3-11'],
        ['EIF5A','FTH1'],
        ['TRAC','TRAV13-1'],
        ['IGFBP5','NEAT1'],
        ['AC002398.12','FLNC'],
        ['IGHM','IGKC'],
        ['DENR','RP11-290L1.4'],
        ['SNORA31','TPT1'],
        ['AC018766.4','AC018766.5'],
        ['EEF2','FLNC'],
        ['IGHA1','IGHV3-53'],
        ['H6PD','SPSB1'],
        ['SNRNP70','TG'],
        ['CTC-479C5.10','EDC4'],
        ['EYA1','RP11-1102P16.1'],
        ['TRAC','TRAV23DV6'],
        ['FLNA','MYH11'],
        ['GPRIN1','SNCB'],
        ['TRAC','TRAV17'],
        ['NKX2-1','RP11-896J10.3'],
        ['TRBC2','TRBV5-1'],
        ['BMS1P20','IGLL5'],
        ['LDHA','LDHAP7'],
        ['CTSB','FLNC'],
        ['IGHG3','IGHV5-51'],
        ['ALDOA','CRYAB'],
        ['TRAC','TRAV20'],
        ['HSPA1L','LSM2'],
        ['IGKV1-8','IGKV2D-29'],
        ['SLC20A2','TG'],
        ['CALR','IGFBP5'],
        ['FGG','SERPINA3'],
        ['SAA2','SERPINA1'],
        ['IGKV1-8','IGKV3-20'],
        ['IGF2','TSIX'],
        ['FCGR3A','FCGR3B'],
        ['CTD-2619J13.8','ZNF497'],
        ['SMARCA4','TG'],
        ['CTSB','TG'],
        ['AC110769.3','LINC01191'],
        ['C1R','TG'],
        ['CD63','TG'],
        ['CTC-548K16.6','PKN1'],
        ['FBLN1','TG'],
        ['MT1X','TG'],
        ['IGHA1','IGHG1'],
        ['IGLC1','IGLV2-18'],
        ['PRC1-AS1','RCCD1'],
        ['CDC14A','RP5-837M10.2'],
        ['SAA1','SAA2-SAA4'],
        ['IGHA2','IGHV3-7'],
        ['HSPA1A','HSPA1B'],
        ['SEC63','SEC63P1'],
        ['KCTD10','RP11-256L11.3'],
        ['IGLC1','IGLV1-47'],
        ['IGKC','MYH9'],
        ['AC078883.3','AC093818.1'],
        ['RPL28','TMEM190'],
        ['AC015936.3','GFAP'],
        ['MVP','PAGR1'],
        ['CAP1','SPP1'],
        ['BTBD8','KIAA1107'],
        ['BAG6','C6ORF47'],
        ['EIF4A2','EIF4A2P3'],
        ['MIR221','MIR222HG'],
        ['COL1A1','IGFBP5'],
        ['C7ORF55','C7ORF55-LUC7L2'],
        ['EEF2','IGFBP5'],
        ['NME4','Z97634.3'],
        ['CCNH','CTC-428H11.2'],
        ['OSGIN1','RP11-505K9.4'],
        ['AHCTF1','AHCTF1P1'],
        ['LINC00594','RP11-64K12.10'],
        ['IGFBP5','VIM'],
        ['TRBV25-1','TRBV27'],
        ['IGHG1','IGHGP'],
        ['CAMK2N1','VSNL1'],
        ['SULT2A1','TAT'],
        ['ZDHHC11','ZDHHC11B'],
        ['FLNA','IGFBP4'],
        ['TG','TNNT3'],
        ['GJA9','MYCBP'],
        ['AC002398.12','IGFBP5'],
        ['DES','TG'],
        ['EARS2','GGA2'],
        ['ACR','SHANK3'],
        ['IGFBP7','TG'],
        ['EIF2B3','PTCH2'],
        ['TRBC2','TRBV4-2'],
        ['AC073063.10','RP11-762I7.5'],
        ['PSMC2','RP11-64K7.1'],
        ['LILRA2','LILRB1'],
        ['ABCD4','AC005519.4'],
        ['ATP1A1','FLNC'],
        ['IPP','RP11-767N6.7'],
        ['TRBV19','TRBV25-1'],
        ['TRBV28','TRBV5-1'],
        ['CD22','U62631.5'],
        ['IGHV1-2','IGHV1-46'],
        ['CROCCP2','RP4-565E6.1'],
        ['FAM129B','TG'],
        ['IGLC1','IGLV4-69'],
        ['SNX22','TG'],
        ['ARF3','FKBP11'],
        ['CTC-264K15.6','SCN4A'],
        ['TRGC2','TRGV2'],
        ['IGKV1-6','IGKV3-11'],
        ['FGB','FGG'],
        ['P2RY11','PPAN'],
        ['HSP90AB1','HSP90AB3P'],
        ['LINC00484','RP11-305L7.6'],
        ['H1F0','TG'],
        ['ACRBP','LPAR5'],
        ['FBXO44','FBXO6'],
        ['CRYAB','FLNC'],
        ['FLNC','MALAT1'],
        ['CNN2','SNORA67'],
        ['LEMD3','RP11-305O6.4'],
        ['COX14','RP4-605O3.4'],
        ['IFRD1','LSMEM1'],
        ['CTC-326K19.6','IL4I1'],
        ['IGHG4','IGHGP'],
        ['FKBP1A','FKBP1C'],
        ['BST1','FAM200B'],
        ['AL928768.3','IGHA1'],
        ['LILRA6','LILRB3'],
        ['IGKV1-8','IGKV1D-43'],
        ['C16ORF74','GINS2'],
        ['FAM193A','RNF4'],
        ['LPA','PLG'],
        ['ALB','ORM1'],
        ['H1FX','TG'],
        ['CKM','GNAS'],
        ['APLP1','TUBB4A'],
        ['MYL2','TG'],
        ['FKBP8','SPARC'],
        ['HP','SERPINA3'],
        ['IGHA1','IGHV1-18'],
        ['IGHA1','IGHV3-74'],
        ['CTA-250D10.23','MIR378I'],
        ['C3','FGB'],
        ['IGHM','IGHV3-73'],
        ['C6ORF163','SMIM8'],
        ['MDC1','NRM'],
        ['AC069368.3','ANKDD1A'],
        ['FGG','GAA'],
        ['IGHD','IGHM'],
        ['SNORA76C','SNORD104'],
        ['PRH1','PRH2'],
        ['CTSS','LYZ'],
        ['EEF2','TG'],
        ['AMBP','SERPINA1'],
        ['CLCC1','RP11-475E11.9'],
        ['KIAA1614-AS1','STX6'],
        ['ZNF37A','ZNF37BP'],
        ['IGHG3','RP11-731F5.2'],
        ['GNAS','TG'],
        ['ARPC4','ARPC4-TTLL3'],
        ['TRAC','TRAV12-1'],
        ['IGKV2-30','IGKV3-11'],
        ['IGLV3-21','IGLV3-9'],
        ['RP5-966M1.6','TMEM110-MUSTN1'],
        ['IGHA1','IGHV1-46'],
        ['DNAJC9','MRPS16'],
        ['ENO1','IGFBP5'],
        ['IGKC','IGKV2-30'],
        ['TRAC','TRAV2'],
        ['RP11-452F19.3','RP11-455P21.3'],
        ['RP11-383J24.6','TMEM65'],
        ['PLXNB1','TG'],
        ['IGLL5','IGLV3-19'],
        ['IGFBP5','RPL35A'],
        ['IER2','TG'],
        ['TG','USP22'],
        ['IGKV1-8','IGKV2-24'],
        ['CEP152','RP11-227D13.4'],
        ['PDAP1','TG'],
        ['ORM1','SERPINA1'],
        ['NEB','TPM2'],
        ['AL590431.1','UBAP2L'],
        ['RP11-896J10.3','SFTA3'],
        ['TBCEL','TECTA'],
        ['AES','TG'],
        ['RP11-159D12.2','RP11-159D12.5'],
        ['TPT1','TPT1P9'],
        ['IGHA1','IGHV4-34'],
        ['ZNF28','ZNF468'],
        ['AEBP1','IGFBP5'],
        ['TUBB','TUBBP1'],
        ['C3','SERPINA1'],
        ['IGHV3-23','RP11-1166P10.8'],
        ['TRAC','TRAV19'],
        ['APOBEC3A','APOBEC3B'],
        ['IGHM','IGHV3-33'],
        ['CLU','CRYAB'],
        ['C9ORF172','PHPT1'],
        ['GFAP','TUBB4A'],
        ['RPL37A','TG'],
        ['ESRP2','RP11-96D1.11'],
        ['IGLC1','IGLV1-50'],
        ['IGFBP5','TPO'],
        ['AKNA','EMP2'],
        ['RBMX','RBMXL1'],
        ['E2F5','LRRCC1'],
        ['NACA','PRIM1'],
        ['FGG','SERPINA1'],
        ['CTD-2574D22.4','KCTD13'],
        ['EPPIN-WFDC6','RP3-461P17.6'],
        ['CARM1','TG'],
        ['CHD3','TPO'],
        ['AC109642.1','LBH'],
        ['IGFBP5','LUM'],
        ['AC009228.1','FAM228A'],
        ['IGFBP5','SRRM2'],
        ['IGKC','NFIB'],
        ['IGHG3','IGHGP'],
        ['ADAMTSL4','MIR4257'],
        ['IGHM','IGHV3-21'],
        ['PRR4','TAS2R15P'],
        ['STAT1','STAT4'],
        ['MYH7','TPM1'],
        ['IGHV3-48','IGHV3-7'],
        ['ARMCX3','RP4-545K15.5'],
        ['CTD-2023N9.2','LINCR-0003'],
        ['FGA','SAA1'],
        ['MT1B','MT1E'],
        ['IGLC1','IGLV3-9'],
        ['LEAP2','UQCRQ'],
        ['SNHG19','SNORD60'],
        ['RP4-650F12.2','TNNI3K'],
        ['RIN2','RP1-122P22.2'],
        ['PTRF','TG'],
        ['MYH7','TPO'],
        ['PILRA','STAG3L5P-PVRIG2P-PILRB'],
        ['C1QBP','CTC-524C5.2'],
        ['ALB','CRP'],
        ['ATXN1L','IST1'],
        ['TRBV25-1','TRBV5-1'],
        ['LETM2','RP11-350N15.5'],
        ['IGHA1','IGHV3-13'],
        ['IRAK1','TG'],
        ['TG','WDR6'],
        ['AC004893.11','TRRAP'],
        ['IGKV1-5','IGKV3-11'],
        ['BCAT1','RP11-625L16.4'],
        ['RTN4','TG'],
        ['KCNK15','RP4-781B1.5'],
        ['IGHA1','IGHV6-1'],
        ['CDK14','CLDN12'],
        ['IGHG3','IGHV4-39'],
        ['FRG1B','RP11-87H9.2'],
        ['CTC-301O7.4','SLC6A16'],
        ['CLU','POLR2A'],
        ['CFH','CFHR3'],
        ['CUL2','RP11-297A16.2'],
        ['GSTM2','GSTM4'],
        ['IGHM','IGHV1-69'],
        ['MIRLET7I','RP11-631N16.2'],
        ['IGKV1-5','IGKV1-8'],
        ['IGHM','IGHV3-53'],
        ['NBPF14','NOTCH2NL'],
        ['PYGM','TG'],
        ['AFM','RP11-622A1.2'],
        ['IGHD','IGHG1'],
        ['MAP7D1','TG'],
        ['MBP','RP11-386G11.10'],
        ['KRBOX1','ZNF662'],
        ['FCGBP','TG'],
        ['RP11-68I18.10','SEMA6C'],
        ['IGHV3-21','IGHV3-48'],
        ['UBB','UBBP4'],
        ['CTSB','IGFBP5'],
        ['ELFN2','RP1-63G5.5'],
        ['CANX','HMGB3P22'],
        ['CHD3','TG'],
        ['APOC1','APOC1P1'],
        ['C17ORF47','SEPT4'],
        ['AC007566.10','GATAD1'],
        ['INPP5K','MYO1C'],
        ['AC245028.1','IGLL5'],
        ['IGFBP5','TG'],
        ['APOC3','SERPINA1'],
        ['AC244250.2','IGLV2-11'],
        ['SOD2','TG'],
        ['IGHV3-23','IGHV3-35'],
        ['C17ORF85','CTD-3195I5.5'],
        ['P2RX4','P2RX7'],
        ['EMB','EMBP1'],
        ['BRWD1-AS1','BRWD1-AS2'],
        ['MAMDC4','PHPT1'],
        ['APP','TG'],
        ['GPX3','IGFBP5'],
        ['AZGP1','GJC3'],
        ['IGFBP5','NR4A1'],
        ['ALB','FGA'],
        ['SAA1','SAA2'],
        ['RP11-293E1.1','RP11-293E1.2'],
        ['MBP','TUBB4A'],
        ['CLU','DES'],
        ['APOD','TG'],
        ['GGA2','ZFAND5'],
        ['AC074286.1','NFE2L2'],
        ['RP11-444D3.1','SOX5'],
        ['LILRA1','LILRB1'],
        ['CAP1','RP11-550F7.1'],
        ['AC002398.12','TG'],
        ['TG','TIMP3'],
        ['RRP7A','RRP7B'],
        ['IGHV3-11','IGHV3-48'],
        ['AC245369.2','IGHV2-70'],
        ['ANKDD1A','PLEKHO2'],
        ['RP11-124N14.3','VIM-AS1'],
        ['IGFBP4','RP11-20I23.1'],
        ['CSNK1G1','CTD-2116N17.1'],
        ['CLU','HSPB6'],
        ['IGHG1','IGHV3-74'],
        ['IGHM','IGHV3-49'],
        ['AP000783.1','GRAMD1B'],
        ['HSP90AB1','TG'],
        ['TRAC','TRAV27'],
        ['HARS2','ZMAT2'],
        ['IGKC','IGKV3-11'],
        ['CTD-2396E7.10','SYP'],
        ['IGLL5','IGLV2-14'],
        ['SOD1','TG'],
        ['HP','SERPINA1'],
        ['IGKC','IGKV1-6'],
        ['IGLC1','IGLV6-57'],
        ['EPPIN-WFDC6','WFDC6'],
        ['CRYAB','TG'],
        ['ITIH4','RP5-966M1.6'],
        ['RP1','RP11-53M11.3'],
        ['TRGC2','TRGV5'],
        ['IGFBP4','VIM'],
        ['CTD-2611O12.7','CTD-2611O12.8'],
        ['TRAC','TRAV8-3'],
        ['LTBP3','TG'],
        ['CATSPER2','CATSPER2P1'],
        ['CCT6P1','CCT6P3'],
        ['ARFGAP3','PACSIN2'],
        ['EBPL','RP11-744D14.1'],
        ['DES','FLNC'],
        ['CENPL','GAS5'],
        ['CLU','TG'],
        ['ANKRD13A','RP11-946P6.6'],
        ['C3','TG'],
        ['DES','MYH7'],
        ['LCAT','SLC12A4'],
        ['IGHA2','IGHG1'],
        ['AC093838.4','SMPD4'],
        ['RPS24P17','SLC12A3'],
        ['SFTPA1','SFTPA2'],
        ['MIR6753','TCIRG1'],
        ['CRYAB','IGFBP5'],
        ['RP11-268J15.5','SH3D21'],
        ['RP11-57H12.2','TMEM56'],
        ['AC012358.8','PRORSD1P'],
        ['ATP1B1','TG'],
        ['HSPB1','HSPB1P1'],
        ['CD22','MAG'],
        ['TG','TPT1'],
        ['ATP1A1','CLU'],
        ['CTD-2528L19.4','ZNF781'],
        ['ZNF510','ZNF782'],
        ['SOD2','YBX3'],
        ['OSBPL1A','RP11-799B12.4'],
        ['KIAA1147','RP5-894A10.2'],
        ['GSN','PCBP1'],
        ['AEBP1','VIM'],
        ['GPX3','IGFBP4'],
        ['BMS1P20','LL22NC03-80A10.6'],
        ['IGHA1','IGHA2'],
        ['IGKC','IGKV1D-16'],
        ['TG','TSPYL2'],
        ['GLUL','TG'],
        ['EED','RP11-320L11.2'],
        ['GSE1','RP11-680G10.1'],
        ['CST3','TG'],
        ['SH3BGR','WRB'],
        ['IFITM2','IFITM3'],
        ['RP11-727F15.13','STX5'],
        ['TRAC','TRAV1-2'],
        ['IGHG1','IGHV3-48'],
        ['SAP18','TG'],
        ['GUSBP11','KB-1572G7.2'],
        ['LYZ','RSL1D1'],
        ['UGT2B28','UGT2B7'],
        ['MYL6','MYL6B'],
        ['EEF2','FLNA'],
        ['IGHM','IGHV5-51'],
        ['ALB','HP'],
        ['IGKC','IGKV2D-24'],
        ['TRAC','TRAV6'],
        ['TMEM107','VAMP2'],
        ['IGHG1','IGHG3'],
        ['NEAT1','TG'],
        ['CTB-102L5.4','SPINT2'],
        ['GPX3','TXNIP'],
        ['EEF2','PLIN4'],
        ['NRG3-AS1','RP11-202D18.2'],
        ['CTSB','GNAS'],
        ['TVP23C','TVP23C-CDRT4'],
        ['ACTA1','ACTG1'],
        ['DES','TPO'],
        ['TRBC2','TRBV24-1'],
        ['IGHA1','IGHV3-33'],
        ['FGA','FGB'],
        ['IGKC','IGKV1-5'],
        ['IGHM','IGHV2-5'],
        ['IGHA2','IGHV3-21'],
        ['CTSB','TPO'],
        ['ABLIM1','TG'],
        ['IGHA1','IGHG3'],
        ['IGHA1','IGHV5-51'],
        ['IGKV1-16','IGKV1-8'],
        ['CNPY3','RP3-475N16.1'],
        ['PBXIP1','PMVK'],
        ['ATAD3A','ATAD3B'],
        ['CRP','FGG'],
        ['C3','EEF2'],
        ['DES','MYL3'],
        ['RP11-104H15.7','SPEM1'],
        ['FAM175A','HELQ'],
        ['PGAM5','PXMP2'],
        ['CHST7','ZNF674-AS1'],
        ['RP11-142L1.3','SET'],
        ['COL1A2','IGFBP5'],
        ['CHUK','ERLIN1'],
        ['PNO1','RP11-597G23.1'],
        ['GIMAP1','GIMAP2'],
        ['EEF2','LTBP4'],
        ['TG','XIRP1'],
        ['ZNF33A','ZNF33B'],
        ['RP11-264B17.3','SPNS1'],
        ['SERPINA1','SERPINA3'],
        ['CEBPZOS','RP11-423P10.2'],
        ['IGHA1','IGHV3-30'],
        ['FLNC','JUN'],
        ['IGHG3','IGHV3-30'],
        ['EEF1A2','TG'],
        ['IGHG1','IGHV3-49'],
        ['CMYA5','TG'],
        ['DES','TPM2'],
        ['FLNC','TTN'],
        ['TRAC','TRAV26-2'],
        ['AIFM3','LZTR1'],
        ['LRP11','RP11-350J20.5'],
        ['C10ORF32','LYZ'],
        ['CTDSP1','TG'],
        ['IGLC1','IGLV8-61'],
        ['EPPIN','WFDC6'],
        ['TRAC','TRAV39'],
        ['KLHL5','RP11-360F5.3'],
        ['COL6A1','IGFBP4'],
        ['DNAJC25-GNG10','GNG10'],
        ['EIF4G2','TG'],
        ['C3ORF62','USP4'],
        ['FLNC','NUPR1'],
        ['SIGLEC11','SIGLEC16'],
        ['IGLC2','IGLV3-19'],
        ['FLNC','GPX3'],
        ['EEF1G','TG'],
        ['DUS3L','PRR22'],
        ['IGLC1','IGLV3-19'],
        ['SAA1','SERPINA1'],
        ['TG','TPO'],
        ['KB-1440D3.13','PPIL2'],
        ['TRAC','TRAV13-2'],
        ['TRBC2','TRBV7-3'],
        ['GPI','TG'],
        ['FHL1','TG'],
        ['TRAC','TRAV24'],
        ['IGKV1-6','IGKV1-8'],
        ['IGHG3','IGHV3-15'],
        ['IGLL5','IGLV2-28'],
        ['CRP','SERPINA1'],
        ['IGKC','IGKV3-20'],
        ['NAV3','RP1-34H18.1'],
        ['LINC01251','UBE2R2-AS1'],
        ['GPX3','TPO'],
        ['ACTA2','ACTB'],
        ['CALR3','EPS15L1'],
        ['MYH11','TIMP3'],
        ['CTSS','RP11-1143G9.4'],
        ['LSM10','STK40'],
        ['IGKV1-8','IGKV2D-30'],
        ['A2M','ALB'],
        ['EPAS1','TG'],
        ['PILRA','PILRB'],
        ['LYZ','MRPS30'],
        ['ALDOA','TG'],
        ['GHITM','TG'],
        ['PREX1','RP5-906C1.1'],
        ['IGHG1','IGHV4-39'],
        ['FKBP5','TG'],
        ['POLR2E','TG'],
        ['DES','EEF2'],
        ['IGHG1','IGHV3OR16-8'],
        ['RP5-966M1.6','SERPINA1'],
        ['CTC-479C5.17','LCAT'],
        ['GRIP1','RP11-123O10.4'],
        ['ACAD8','GLB1L3'],
        ['TRAC','TRAV35'],
        ['PYGB','TG'],
        ['PDCD4','RP11-313D6.3'],
        ['TRBC2','TRBV3-1'],
        ['PSMD11','ZNF207'],
        ['ACTB','IGFBP5'],
        ['CD300A','CD300C'],
        ['CRY1','MTERFD3'],
        ['IL4I1','NUP62'],
        ['AB015752.3','LINC01030'],
        ['INTS3','SLC27A3'],
        ['GPX3','TIMP3'],
        ['IGKV1-27','IGKV1-8'],
        ['IGKV1-27','IGKV3-11'],
        ['RP11-314N13.3','SDCBP2-AS1'],
        ['AC053503.6','TG'],
        ['SNHG12','SNORD99'],
        ['MRPL19','RP11-342K6.2'],
        ['IGHM','MYH11'],
        ['FAM53B','RP11-12J10.3'],
        ['AOX1','AOX3P'],
        ['MALAT1','TPO'],
        ['MT2A','TG'],
        ['MALAT1','TG'],
        ['TRBC2','TRBV19'],
        ['RP11-168A11.4','THBS4'],
        ['ACTN1','HMGN1'],
        ['IGHG1','IGHV2-26'],
        ['IGFBP5','MYH9'],
        ['RP11-68I3.11','SSH2'],
        ['AC013394.2','CHD2'],
        ['IGHM','IGHV1-18'],
        ['CTC-347C20.1','CTC-347C20.2'],
        ['COL4A2','GPX3'],
        ['CSNK2B','LY6G5B'],
        ['RP11-632C17__A.1','RPL29'],
        ['LINC01089','RHOF'],
        ['NBPF14','SMG8'],
        ['IGHA1','IGHV1-24'],
        ['CLU','NRGN'],
        ['RASSF4','ZNF22'],
        ['LRRC75A','PEBP1'],
        ['FGB','SERPINA1'],
        ['ATF6B','TG'],
        ['AC006946.16','CECR7'],
        ['NBPF2P','NBPF3'],
        ['IGHG1','IGHV3-43'],
        ['AC006153.3','CLDN12'],
        ['GNS','TG'],
        ['IGHG1','IGHV5-51'],
        ['IGKC','IGKV4-1'],
        ['CKM','TPO'],
        ['DLG5','TG'],
        ['DPY19L2','DPY19L2P1'],
        ['CTSB','SOD2'],
        ['IGLL5','IGLV7-46'],
        ['HSPB7','TG'],
        ['BRICD5','PGP'],
        ['ITIH4','MUSTN1'],
        ['BRS3','HTATSF1'],
        ['IGLC2','IGLL5'],
        ['ACTA1','DES'],
        ['HCG15','HCG16'],
        ['ELOVL1','MED8'],
        ['PDIA4','TG'],
        ['HSP90AA1','TG'],
        ['TG','YME1L1'],
        ['MURC','TMEFF1'],
        ['PLVAP','TG'],
        ['LTB4R2','NOP9'],
        ['IGHG1','IGHG2'],
        ['RP11-252I13.1','USP7'],
        ['GPX3','UMOD'],
        ['CKM','CLU'],
        ['IGKV1-8','IGKV1D-8'],
        ['RP11-242D8.1','RP11-242D8.3'],
        ['APITD1','CORT'],
        ['LRR1','RHOQ'],
        ['CTB-119C2.1','HNRNPA2B1'],
        ['RP11-503N18.1','RP11-503N18.3'],
        ['CRYAB','HSPB1'],
        ['IGHV3-30','IGHV3-64'],
        ['EGR1','TPO'],
        ['RP11-446N19.1','RP11-96H19.1'],
        ['VAMP5','VAMP8'],
        ['CLTB','TG'],
        ['RP4-583P15.15','SLC2A4RG'],
        ['RP5-1061H20.3','RP5-1061H20.4'],
        ['BIN1','TG'],
        ['ACTA1','TG'],
        ['IGLC1','IGLV1-40'],
        ['CTD-2396E7.10','MALAT1'],
        ['ST3GAL1','TG'],
        ['GIMAP2','GIMAP5'],
        ['RP4-583P15.14','SLC2A4RG'],
        ['IGHG1','IGHV3-64'],
        ['ZFP2','ZNF354B'],
        ['ACTB','IGHM'],
        ['INO80C','RP11-322E11.5'],
        ['MRPS6','SLC5A3'],
        ['MYO1C','TG'],
        ['IGKC','IGKV1-27'],
        ['IGLL5','IGLV3-10'],
        ['CANX','TG'],
        ['AHNAK','IGFBP5'],
        ['IGF2','PLLP'],
        ['TRAC','TRAV29DV5'],
        ['EEF2','IYD'],
        ['TRBV25-1','TRBV6-6'],
        ['AC108488.4','RNASEH1'],
        ['IGKV2-24','IGKV2D-24'],
        ['IGHA1','IGHV3-49'],
        ['IGHA2','IGHV3-23'],
        ['IGKV1-17','IGKV3-11'],
        ['NPM1','NPM1P6'],
        ['C8ORF44','C8ORF44-SGK3'],
        ['MOCS1','RP11-61I13.3'],
        ['PAGR1','PRRT2'],
        ['EIF4E3','FOXP1'],
        ['PNPLA2','TG'],
        ['MT1E','MT1P3'],
        ['CKM','DES'],
        ['LGMN','LGMNP1'],
        ['MALAT1','NEAT1'],
        ['FGA','SERPINA1'],
        ['IGLV3-16','IGLV3-25'],
        ['MMADHC','RP1-145M24.1'],
        ['PARM1','TG'],
        ['SCNN1A','TNFRSF1A'],
        ['IGHV1-12','IGHV1-2'],
        ['C3ORF17','RP11-572M11.3'],
        ['IGKV1-8','IGKV6-21'],
        ['EEF2','NEAT1'],
        ['C3','COL1A1'],
        ['DCAF4','RP11-109N23.6'],
        ['GAPDH','TG'],
        ['IGHG1','IGHV2-5'],
        ['IGLV3-10','IGLV3-25'],
        ['IGFBP5','TPT1'],
        ['IGLC1','IGLV10-54'],
        ['AKNA','RP11-9M16.2'],
        ['MYH6','MYH7'],
        ['TRBV27','TRBV28'],
        ['CHP1','LRG1'],
        ['AC005037.6','MTND4P23'],
        ['FTX_2','RAB11FIP1P1'],
        ['IGHA2','IGHV5-51'],
        ['TRAC','TRAV12-3'],
        ['RP11-278C7.4','YARS2'],
        ['PTGDR2','RP11-804A23.4'],
        ['ACTB','MYH11'],
        ['ADSS','RP11-518L10.5'],
        ['DES','MYL2'],
        ['CIRBP','EEF2'],
        ['IGHV3-23','IGHV3-74'],
        ['FTL','MYH11'],
        ['IGHV1-46','IGHV1-69'],
        ['SQSTM1','TG'],
        ['IGHG1','IGHV1-24'],
        ['IGKV1-8','IGKV3D-15'],
        ['FTL','TG'],
        ['ATP1A1','GNAS'],
        ['DYNLL2','TG'],
        ['IGHM','IGHV3-72'],
        ['IGLC1','IGLV2-11'],
        ['RP4-800G7.2','ZNF783'],
        ['KLHDC3','RRP36'],
        ['TPT1','TPT1P4'],
        ['AIP','MIR6752'],
        ['IGHG1','IGHV1-67'],
        ['FAM60A','FAM60BP'],
        ['PDIA3','PDIA3P1'],
        ['DES','H1F0'],
        ['SAA1','SAA4'],
        ['COL6A3','IGFBP5'],
        ['IGHG1','IGHV4-28'],
        ['TRBC2','TRBV18'],
        ['LRP10','TG'],
        ['SNHG3','SNORA73B'],
        ['RP11-514O12.4','RPS6KA2'],
        ['BAG3','TG'],
        ['RP11-404G16.2','TF'],
        ['MROH7','MROH7-TTC4'],
        ['DNAJC18','ECSCR'],
        ['IGHG1','IGHV3-33'],
        ['IGKV3-20','IGKV3D-20'],
        ['MPDZ','RP11-272P10.2'],
        ['MYH9','TG'],
        ['S100A6','TG'],
        ['CLEC2D','RP11-705C15.2'],
        ['MYH11','TPM2'],
        ['FZD4','RP11-736K20.5'],
        ['ARID3C','DCTN3'],
        ['CDRT4','TVP23C'],
        ['TRGC1','TRGC2'],
        ['MYH7','TTN'],
        ['IGLL5','IGLV6-57'],
        ['ACSM2A','ACSM2B'],
        ['IGLL5','IGLV2-11'],
        ['TRBV19','TRBV28'],
        ['HIRA','TG'],
        ['LRG1','TAT'],
        ['RP11-285F7.2','TMEM63A'],
        ['SPP1','TIMP3'],
        ['FPGT-TNNI3K','TNNI3K'],
        ['CRYAB','GPX3'],
        ['RP4-613B23.1','SEC22C'],
        ['IGHM','IGHV3-23'],
        ['CRYAB','TPO'],
        ['HSD17B4','TG'],
        ['CPNE1','RBM12'],
        ['RP11-753H16.3','RP11-753H16.5'],
        ['IGKV1-8','IGKV2-30'],
        ['BRI3','RP4-607J23.2'],
        ['EEF2','IGF2'],
        ['SAG','VPS13C'],
        ['CLUH','TG'],
        ['HNRNPH1','HNRNPH1P2'],
        ['PRKRIRP8','RGS7'],
        ['CTD-2396E7.9','SYP'],
        ['IGHV4-28','IGHV4-59'],
        ['IGLC2','IGLV3-21'],
        ['FGG','HP'],
        ['PAX8','TG'],
        ['CTD-3199J23.4','RND2'],
        ['CD68','LYZ'],
        ['IGLC1','IGLV9-49'],
        ['IGLL5','IGLV2-18'],
        ['SYNPO2','TPO'],
        ['IGKC','IGKV3D-20'],
        ['DSTN','DSTNP2'],
        ['CIRBP','TG'],
        ['TRBV2','TRBV25-1'],
        ['METTL2A','METTL2B'],
        ['BHLHB9','LINC00630'],
        ['ACTA1','TPO'],
        ['NR4A1','TG'],
        ['EPOR','RGL3'],
        ['DES','MYL9'],
        ['PER1','TG'],
        ['IGKV1-8','IGKV3-15'],
        ['TRBC2','TRBV20-1'],
        ['RP4-673D20.3','RP5-968J1.1'],
        ['LAMTOR5-AS1','PROK1'],
        ['ERV3-1','ZNF117'],
        ['ARHGAP42','TMEM133'],
        ['KIF27','RP11-213G2.3'],
        ['DLEU2L','EFCAB7'],
        ['DYNC1H1','TG'],
        ['IGFBP5','TIMP2'],
        ['TRBV2','TRBV28'],
        ['PAFAH1B1','RN7SL608P'],
        ['DES','NEAT1'],
        ['AES','GPX3'],
        ['DES','MYH11'],
        ['CTDSP2','TG'],
        ['ALB','FGB'],
        ['RP11-392E22.10','RP11-392E22.5'],
        ['MCL1','TG'],
        ['CTD-2017D11.1','ZNF254'],
        ['ACTB','ACTG1'],
        ['FAN1','RP11-540B6.6'],
        ['TLR1','TLR6'],
        ['AL157871.2','SLC25A29'],
        ['SYNE2','TG']
]



    data = fusions.get(options.organism.lower(),[])
    if data:

        #file_symbols = os.path.join(options.output_directory,'genes_symbols.txt')
        file_symbols = os.path.join(options.output_directory,'synonyms.txt')
        loci = symbols.generate_loci(file_symbols)

        genes = symbols.read_genes_symbols(file_symbols)

        d = []
        for (g1,g2) in data:
            if g1.upper() != g2.upper():
                ens1 = symbols.ensembl(g1.upper(),genes,loci)
                ens2 = symbols.ensembl(g2.upper(),genes,loci)
                if ens1 and ens2:
                    for e1 in ens1:
                        for e2 in ens2:
                            if e1 != e2:
                                d.append([e1,e2])

        data = ['\t'.join(sorted(line)) + '\n' for line in d]
        data = list(set(data))

        print "%d known fusion genes found in manually currated database" % (len(data),)

        if not options.skip_filter_overlap:
            d1 = []
            overlappings = ['ensembl_fully_overlapping_genes.txt',
                            'ensembl_same_strand_overlapping_genes.txt',
                            'refseq_fully_overlapping_genes.txt',
                            'refseq_same_strand_overlapping_genes.txt',
                            'ucsc_fully_overlapping_genes.txt',
                            'ucsc_same_strand_overlapping_genes.txt',
                            'pairs_pseudogenes.txt',
                            'paralogs.txt']
            for ov in overlappings:
                p = os.path.join(options.output_directory,ov)
                print "Parsing file:",p
                if os.path.isfile(p):
                    d2 = sorted(set([tuple(sorted(line.rstrip('\r\n').split('\t'))) for line in file(p,'r').readlines() if line.rstrip('\r\n')]))
                d1.extend(d2)
            d = set()
            for line in d1:
                (a,b) = (line[0],line[1])
                if a > b:
                    (a,b) = (b,a)
                d.add("%s\t%s\n" % (a,b))
            skipped = [line for line in data if line in d]
            data = [line for line in data if not line in d]
            file(os.path.join(options.output_directory,'bodymap2_known_but_overlapping.txt'),'w').writelines(sorted(skipped))

            print "%d known fusion genes left after removing the overlappings" % (len(data),)

    file(os.path.join(options.output_directory,'bodymap2.txt'),'w').writelines(sorted(data))
    #
